组播学习笔记

您所在的位置:网站首页 igmp 监听 组播学习笔记

组播学习笔记

2024-04-21 04:46| 来源: 网络整理| 查看: 265

组播组(g):接收同一个组播地址的设备。如何区分不同的组播组?根据组播地址来区分。组播源(s):组播数据包的发送者组播成员:所有加入某组播组的主机组播路由器:运行组播协议的设备

组播服务模型

依据接收者接收流量是否针对源进行区分,可分为: ASM模型(组成员无法对组播源做出选择时,应该部署ASM服务模型) SSM模型(组成员可以对组播源做出选择时,可以部署SSM服务模型)

ASM :只通过组播地址来唯一的区分不同的组播业务,即不同的组播业务需要分配不同的组播地址,会造成组播地址浪费,但对组成员的能力要求不高,容易部署和维护。接收者只需要事先知道自己要加入的组播地址即可。SSM:通过组播地址和组播源的地址来唯一的区分不同的组播业务,那么可以实现组播地址重复利用。即同一个组播地址可以使用不同的组播源来提供不同的组播业务。组成员需要事先知道源和组的对应关系。

组播地址-IP地址:

224.0.0.0~224.0.0.255 永久组地址 224.0.1.0~231.255.255.255 233.0.0.0~238.255.255.255 ---ASM组播地址,全网范围内有效 232.0.0.0~232.255.255.255 缺省为SSM组播地址,全网范围内有效 239.0.0.0~239.255.255.255 本地管理组地址,仅在本地管理域内有效

组播地址-MAC地址TCP/IP模型 决定所有IP报文都必须封装成帧才能在链路上转发。单播以太网数据帧:SMAC:发送该数据帧的三层接口的MAC地址DMAC:根据目的IP地址通过ARP解析而来第8bit为1—组播MAC01-00-5E-0{组播ip地址的后23bit}

组播协议:

IGMP PIM

IGMP

一个网段内主机与组播路由器之间维护组成员关系的协议 版本:IGMPv1、IGMPv2、IGMPv3

IGMPv1基本原理

报文: 普遍组查询(通用组查询报文) 成员报告报文 报文格式: Version:IGMP的版本 Type:报文类型,1为普遍组查询、2为成员报告 Group address:组地址

1、 通用组查询报文General Query 由路由器周期性发送,默认每隔60s发送一次,通过IP报文封装,SIP为路由器接口地址,DIP为224.0.0.1(链路上所有路由器和主机)。 通用组查询报文group address 为0.0.0.0,代表针对所有组播组发起组成员查询。 当组成员接收到通用组查询报文后,随机延时一个0~10s的时间后,发送成员报告报文,SIP为主机自身接口IP,DIP为该主机所属的组播组地址。Group address为该主机所属的组播组地址。 随机延迟时间为0~10s之间一个值,10s称为最大响应时间,实现组成员报告抑制机制,IGMPv1无法修改该时间值。 为什么要设计最大响应时间呢?避免同组的成员重复发送成员报告报文,减少路由器负担。由于组成员报告延迟时间不一致,谁先超时谁先报告。 路由器接收到成员报告之后,将创建(,G)表项,并将收到该成员报告的接口做该(,G)表项的下游接口,未来路由器收到发现该组的组播报文就向该下游接口复制一份,从而发给成员主机所在的网段。 IGMPv1没有设计离组机制,成员离开不会发送任何通知,静默离开,如果该组最后一个成员离开,路由器在130s内接收不到该组的报告报文,则认为该组不存在成员,将(*,G)表项的下游接口删除,停止向该组网段发送该组的组播报文。

IGMPv1没有查询者选举机制。什么是IGMP查询者呢?当一个网段存在多台路由器时,负责向该网段发送普遍组查询的路由器。IGMPv1需要PIM协议的DR选举机制来协助查询者的选举,因此启用IGMPv1的接口还需启用PIM协议。由PIM协议选举出该网段上的DR,由DR充当IGMPv1的查询器。

PIM DR的选举规则:

根据PIM协议中hello中携带的优先级选举DR,优先级越大,优先成为DR。优先级默认为1。 pim hello-option dr-priority 10

PIM DR具有抢夺性,DR失效后会重新选举DR,充当IGMPv1的查询器

优先级相同,则比较接口IP地址的大小,地址大的优先成为DR。

igmp timer query 10,修改IGMP普遍组查询报文的发送间隔。

IGMPv2在IGMPv1的基础之上新增2种报文:

特定组查询报文 离组报文

在IGMPv1的基础之上新增3种机制:

离组机制

1) 当主机要离开某个组时,会发送离组报文。SIP为自身网卡IP,DIP为224.0.0.2(代表链路上的路由器),Group address 为离组的组播地址。

2) 路由器收到离组报文后,会发送指定组查询报文,SIP 路由器接口地址,DIP 为主机离组的组地址,Group address为离组的组播地址。

3) 指定组查询默认连续以1s为间隔,连续发2次,在“发送间隔发送次数”时间内,如果没有收到该组成员的报告,则认为该组不再存在成员,删除相应的(,G)表项,停止该组播流量转发。

离组报文有2种发送机制 :(1) 只要主机离组,就会发送离组报文。eNSP有离开按钮,会发离组报文。(2) 只有本轮查询的报告者离组时,由报告者发送离组报文,本轮的非报告者离组不发送离组报文,静默离开。

查询器选举机制

1) IGMPv2设计了自身的查询器选举机制,接口地址小的成为查询器,具有抢夺性。2) 非查询器会维护一个“其它查询器失效时间”默认为125s。3) 非查询器根据自身的“健壮系数 × IGMP普遍组查询报文发送间隔 + (1/2) × 最大查询响应时间”来计算“其它查询器失效时间”

最大响应时间控制机制

IGMPv2、IGMPv3适用的命令:igmp max-response-time 5 修改通用组查询报文的最大响应时间;igmp lastmember-queryinterval 3 修改特定组查询报文的最大响应时间,默认1s;igmp robust-count 3 修改指定组查询报文发送次数IGMPv2、IGMPv3适用,即健壮系数。默认2s;

IGMPv3:

一、IGMPv3的报文类型:1.通用组查询报文2.指定组查询报文3.特定源组查询报文4.成员报告报文,没有离组报文

二、取消了成员报告抑制报文报告中的include为空

二层组播转发的机制:1) IGMP监听2) CGMP,思科3) 静态组播表项

PIM协议PIMv2 与协议无关的组播路由协议

网络使用静态、RIP、ISIS、MP-BGP都可以运行PIM协议。

DVMRP 距离矢量组播路由协议MOSPF 组播OSPF协议---但是对单播网络有要求,比如DVMRP要求IGP使用RIP,MOSPF要求IGP使用OSPF。“协议相关路由协议”

PIMv2有3种工作模式:1、 密集模式 DM2、 稀疏模式 SMDM、SM用于支持ASM的组播网络3、 指定源组播模式 SSMSSM用于支持SSM的组播模式

PIM的作用:构建、维护组播路由转发表项运行在路由器和路由器之间

第一跳路由器:和组播源相连的PIM路由器最后一跳路由器:和组成员源相连的PIM路由器叶子路由器:与用户主机相连的PIM路由器,连接的用户主机不一定为组成员

源树(SPT树):组播在网络中传输经过的路由器和路径组成的树特点:以组播源为根,到组成员的最短路径树PIM路由表使用(S,G)描述SPT树。S代表组播源地址,G代表组播组的地址(S,G)表项:1)有且只有一个上游接口,也称为 RPF 接口(反向路径检测接口),用于接收该(S,G)的组播流量。2)可以有一个或多个或没有下游接口,用于发送该(S,G)的组播流量。3)下游接口不可能成为向上游接口。

共享树(RPT树):以RP(汇聚点)为根一棵组播分发树优点:只需要维护(*,G)表项,节省设备资源(*,G)表项:1)有且只有一个上游接口,也称为 RPF 接口(反向路径检测接口),用于接收该(*,G)的组播流量。2)可以有一个或多个或没有下游接口,用于发送该(*,G)的组播流量。3)下游接口不可能成为向上游接口。

对比:(S,G)组播转发路径最优,需要维护所有已知的(S,G)表项,比较占用设备资源,流量路径比较多,不利于运维和故障定位以及排除。(*,G)组播转发路由非最优,但无需维护所有的(S,G)表项,设备开销较小,组播流量路径明确,有控制点,方便故障定位和排错。

PIM-DM(密集模式)“推(Push)”的模式转发组播报文周期性的扩散和剪枝构建和维护单向无环的SPT树适用于小型的组播网络1.邻居发现Hello消息目的地址为224.0.0.13、源地址为接口的IP地址、TTL值为1周期性时间:30s失效时间:105s

PIM-DR作用:1、 用于充当IGMPv1的查询器2、 PIM-DM模式下,DR没有实际用途。

接口开启PIM,邻居关系就会建立起来。

2.扩散机制将组播源发送的组播报文扩散到全网沿途每台PIM-DM路由器创建(S,G)表项

DM模式扩散机制:1) 路由器接收到组播流量后,对接收该流量的接口进行RPF检测。如果RPF检测成功,则创建(S,G)表项,RPF检测成功的接收成为上游接口,检测失败丢弃该组播流量。

RPF检测机制:根据组播的源地址查找单播路由表,如果接收组播流量的接口是去往组播源地址的单播路由出口,则RPF检测通过,接收该组播流量,并创建(S,G)表项。如果去往组播源存在多条等价出口,则下一跳地址大的出口,作为RPF接口。RPF接口上的PIM邻居称为RPF邻居。RPF检测举例:

2) 从上游接口接收到的(S,G)流量,从除了RPF接口之外的存在PIM邻居的接口以及存在直连组成员进行扩散。

3.剪枝机制

1) 当路由器发现自身不存在任何下游接口时,将发起剪枝机制,向RPF接口上发送剪枝报文,目的地址为224.0.0.13,即该接口上的所有PIM邻居。上游路由器收到剪枝报文后,如果剪枝报文中携带的RPF邻居地址是自身接口IP,则将自身接收剪枝报文的接口从(S,G)下游接口中删除

① 如果剪枝后,下游接口不为空,剪枝结束;② 如果剪枝后,下游接口为空,继续向(S,G)表项RPF的接口发送剪枝报文,向上游继续剪枝。

出现等价出口,三个出接口,谁的地址大,谁就是我的RPF邻居

PIM DM--SPT树的形成1) 经过扩散-剪枝过程,形成组播源与接收者之间SPT树2) 扩散-剪枝周期进行,210s重复一次

DM模式周期性扩散的意义:1)向全网路由器表明组播源是活跃的。2)能够维护(S,G)表项不被老化。

4.嫁接(graft)作用:剪枝的路径上如果存在新组成员的加入,快速获得组播流量路由器根据组地址查找对应的(S,G)表项;1)如果没有对应的(S,G)表项则无法完成嫁接。2)如果有对应的(S,G)表项,那么根据组播源地址查RPF接口,朝RPF接口的RPF邻居发送单播嫁接报文,SIP地址为自身路由器的接口地址,DIP为RPF邻居的地址。上游RPF邻居接收到嫁接报文,将接收该报文的接口接入到自身(S,G)表项的下游接口中,并单播回复嫁接确认报文。如果这个被嫁接的接口是(S,G)表项唯一的下游接口,则继续向上游发起嫁接;如果这个被嫁接的接口不是(S,G)表项唯一的下游接口,则嫁接结束。

总结:即以前剪枝到哪,就嫁接到哪

5.状态刷新机制

是PIM-DM默认的优化机制,避免了周期性扩散-剪枝行为的发送,导致组播流量占用网络带宽,节省网络资源。1)第一跳路由器会周期性的发送PIM的状态刷新报文,目的地址为224.0.0.13,即发给所有的PIM邻居,该报文还携带(S,G)的信息。2)下游路由器收到状态刷新报文后,会重置(S,G)表项的老化时间以及重置剪枝接口的剪枝超时定时器。当组播源不再向网络发送组播流量时,第一跳路由器停止状态刷新报文的发送,全网(S,G)表项超时后被删除。周期性时间:60s

配置在第一跳路由器连接组播源的接口,默认开启

6.断言机制(assert)接收到重复的组播流量:

断言:保证只有一个PIM路由器向该网段转发组播报文,实现无重复组播流量断言报文发给该网段上的所有PIM路由器,即224.0.0.13。断言报文中携带:1)路由器到达组播源路由的协议优先级;

2)路由器到达组播源路由的开销值 3)路由器自身在该网段的接口地址

断言选举机制:1)协议优先级优的成为断言的winner

2)优先级相同,比较开销值小的成为断言的winner 3)开销值相同,接口地址大的成为断言的winner

断言的优胜者负责在该网段扩散组播流量,失败者将失败的接口从(S,G)表项删除。断言的优胜者被下游路由器认为是自己的RPF邻居,比下游路由器自身判断RPF邻居的机制优先。断言的失败者会在该网段发送剪枝报文,企图将断言优胜者也剪枝掉,断言优胜者如果在3s内收到join报文,则否决剪枝报文,如果3s后没有收到join报文,也将接口从(S,G)表项中删除。剪枝否决机制。

PIM-SM(稀疏模式)

使用“拉”的模式转发组播报文---按需适用于大型组播网络以RP为根构建RPT

1.邻居发现和DR竞选

1)邻居发现和PIM-DM一致 2)广播网络中必须进行DR选举

PIM-SM的DR分为两种:1) 源端DR:负责发送reg注册报文或者reg-stop报文,构建SPT树。2) 成员端DR:负责发送join报文构建RPT树。

RPT树的创建:以RP为根,成员端DR发送join报文构建

PIM-SM模式:PIM网络的路由器(S,G)一定要事先知道S的地址,以及存在S的路由(*,G)一定要事先知道RP的地址,以及存在RP的路由

(,G)表项是由收到成员报告报文或者收到(,G)的join报文而被创建的。(*,G)表项的上行接口是根据RP的地址进行RPF检测得到的。(,G)表项的下游接口是存在直连组成员或者收到正确的(,G) join报文而被创建出来的。(,G)表项的下游接口收到(,G)的剪枝报文或者最后组成员leave报文而被删除。当(,G)表项下游接口为NULL时,朝RP的RPF接口发送(,G)剪枝报文。

PIM-SM—RP发现发现方式:1)静态RP 2)动态RPRP的特点:1.同一个时刻一个组只能有一个RP2.不同的组可以有相同的RP

一、静态RP静态RP需要在每台路由器上配置static-rp 1.1.1.1 ,将1.1.1.1设置为所有组的RPstatic-rp 2.2.2.2 2000,将2.2.2.2设置为acl 2000组地址范围的RP

1)如果某个组地址同时满足多条ACL,则掩码长度大的优先,即越精确越优先3) 默认情况下,动态RP优先使用。Preferred:设置静态RP优先。

二、动态RP协议BSR 自举协议,开放标准的协议。

BSR的工作机制:1) 首先管理员需要手动配置C-BSR路由器,可以是一台或者多台。2) 在所有C-BSR中选举出BSR路由器。3) 如果BSR路由器失效,在其他的C-BSR中重新选举新的BSR路由器。4) 如果只有一台C-BSR,则它成为BSR

选举过程:1、C-BSR 初始认为自身就是BSR,在所有存在PIM邻居的接口上周期性发送Bootstrap报文,源地址为物理机接口IP,目的地址为224.0.0.13,TTL=1。2、携带C-BSR的地址、C-BSR的优先级,逐跳在泛洪到整个PIM网络。选举规则:1)比较C-BSR的优先级,值越大优先成为BSR2)优先级相同,C-BSR地址大的成为BSR。3、竞选失败的C-BSR将不会周期性发送Bootstrap报文,即此刻网络中只有BSR周期性发送Bootstrap报文。周期性时间60s。4、C-BSR维护一个BSR失效计时器,默认在130s超时,如果没有收到Bootstrap报文,则认为BSR失效,重新进行BSR的选举。

为了防止Bootstrap的泛洪环路,引入BSR RPF检测机制,路由器收到Bootstrap报文,根据BSR的地址进行RPF检测。只有同时满足以下2个条件时才接收Bootstrap报文,并向其他接口继续泛洪:1、 收到Bootstrap报文的接口为去往BSR的出口。2、 收到的Bootstrap报文的源地址为RPF邻居的地址。

pimc-bsr loopback0

RP的选举机制:1、 首先管理员需要手动配置C-RP路由器,可以是一台或者多台,C-BSR也可以是C-RP2、 C-RP向BSR的地址发送单播的advertisement报文,源地址为C-RP的竞选地址,目的地址为BSR的地址。3、 Advertisement报文中携带RP的竞选参数,包括C-RP地址、C-RP的优先级、服务的地址组范围RP选举机制:1)服务组范围掩码长的优先2)C-RP优先级值小的优先,默认为0。3)根据bootstrap报文设置的hash掩码长度计算hash,值大的优先。4)C-RP地址大的优先。

PIM-SM的SPT切换1、 SPT切换由最后一跳路由器发起2、 当最后一跳路由器接收到从RPT树的组播流量后,可以通过组播流量得知组播源的地址,则默认发起SPT切换,希望构建一棵源到最后一跳路由器的SPT树,实现路由优化。

SPT切换的流程:1、 最后一跳路由器根据组播源的地址进行RPF检测,并向指向组播源的RPF接口上RPF邻居发送(S,G)的join报文,逐跳构建SPT树。2、 当去往组播源地址和去往RP的地址的RPF接口不一致时,路由器沿着去往组播源RPF发送(S,G) (S)join,沿着去往RP的RPF接口发送(S,G) (SR)prune。沿着RP方向上的路由器将自身(S,G)表项的下游口剪枝掉,实现SPT切换,通过SPT树接收组播流量。

配置命令:spt-switch-threshold 1000 //检测到组播流量速率达到1000kb时进行SPT切换,阈值默认为0,即收到组播流量就进行切换。阈值为infiity(无限大)时不进行切换(关闭SPT切换)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3